package com.guodi.map.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @描述：专题目录/图层
 * @作者: 代鹏刚
 * @日期: 2019-12-11
 */
@Getter
@Setter
@ApiModel(value="专题目录/图层")
public class MapProjectDir implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键ID")
    private String id;

    @ApiModelProperty(value = "目录名称")
    private String name;

    @ApiModelProperty(value = "上级目录ID")
    private String parentId;

    @ApiModelProperty(value = "目录/图层 类型（1.目录，2图层，3：组合图层）")
    private Integer type;

    @ApiModelProperty(value = "图层透明度")
    private Integer opacity;

    @ApiModelProperty(value = "是否显示（ 0：不显示，1：显示）")
    private Integer isShow;

    @ApiModelProperty(value = "是否编辑（0：不可编辑，1：可编辑）")
    private Integer isEdit;

    @ApiModelProperty(value = "显示顺序")
    private Integer sort;

    @ApiModelProperty(value = "所属机构ID")
    private String orgId;

    @ApiModelProperty(value = "图层ID")
    private String layerId;

    @ApiModelProperty(value = "专题ID")
    private String projectId;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "创建人")
    private String creator;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改人")
    private String modifier;

    @ApiModelProperty(value = "修改时间")
    private Date modifyTime;

    /**
    * @描述: 新增非表字段
    * @作者: 代鹏刚
    * @日期: 2020/1/3 14:52
    **/
    @ApiModelProperty(value = "父节点名称")
    @TableField(exist = false)
    private String parentName;

    @ApiModelProperty(value = "当前目录等级")
    @TableField(exist = false)
    private Integer treeLevel;

    @ApiModelProperty(value = "子节点")
    @TableField(exist = false)
    private List<MapProjectDir> children;

    @ApiModelProperty(value = "关联图层")
    @TableField(exist = false)
    private MapLayer mapLayer;

    @ApiModelProperty(value = "关联元数据")
    @TableField(exist = false)
    private MapMetadata mapMetadata;

    @ApiModelProperty(value = "是否为目录层(true:是 false:否)")
    @TableField(exist = false)
    private Boolean isDir;

    @ApiModelProperty(value = "字段信息")
    @TableField(exist = false)
    private List<MapLayerField> fieldList;

    @ApiModelProperty(value = "图层目录集合")
    @TableField(exist = false)
    private List<Map<String, Object>> layerDirMap;

    /**
    * @描述: 新增表字段
    * @作者: 代鹏刚
    * @日期: 2020/3/25 10:20
    **/
    @ApiModelProperty(value = "别名")
    private String alias;

    @ApiModelProperty(value = "是否常用（0：否，1：是）")
    private Integer isCommon;

    /**
     * @描述: 这个字段不能存数据库，是否收藏使用map_layer_collect这个表来保存
     * @作者: 陈宏成
     * @日期: 2021-04-26 15:55:00
     **/
    @ApiModelProperty(value = "是否收藏（0：否，1：是）")
    @TableField(exist = false)
    private Integer isCollect;

    @ApiModelProperty(value = "是否图层目录（0：否，1：是）")
    private Integer isLayerDir;

    @ApiModelProperty(value = "是否显示时间轴（ 0：否，1：是）")
    private Integer isShowTime;



    /**
     * @描述: 专题目录图层上面挂载的附件目录树
     * @作者: 陈宏成
     * @日期: 2021-04-28 09:46:00
     **/
    @ApiModelProperty(value = "专题目录图层上面挂载的附件目录树")
    @TableField(exist = false)
    private List<MapProjectFile> projectFiles;

    @TableField(exist = false)
    private List<String> imageUrl;

    @TableField(exist = false)
    private String code;


}
